package dsk.demo.product;

import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
//import com.spire.pdf.FileFormat;
//import com.spire.pdf.PdfDocument;
import lombok.Data;
//import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class PDF解析 {
    public static void main(String[] args) throws IOException {
        // 加载pdf文件
//        PdfDocument pdf = new PdfDocument();
//        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\HKT 2022-2023 glow_plug_catalog [Unlocked by www.freemypdf.com].pdf");
//        //保存为Excel文档
//        pdf.saveToFile("C:\\Users\\Administrator\\Desktop\\目标.xlsx", FileFormat.XLSX);
//        pdf.dispose();
//        File file = new File("C:\\Users\\Administrator\\Desktop\\HKT 2022-2023 glow_plug_catalog [Unlocked by www.freemypdf.com].pdf");
//        File outFilePath = new File("C:\\Users\\Administrator\\Desktop\\预热塞分页");
//        for (String s : outFilePath.list()) {
//            PdfDocument pdf = new PdfDocument();
//            pdf.loadFromFile(outFilePath.getAbsolutePath() + File.separator + s);
//            //保存为Excel文档
//            pdf.saveToFile(outFilePath.getAbsolutePath() + File.separator + s + ".xlsx", FileFormat.XLSX);
//            pdf.dispose();
//        }
//
//        pageSpilt(file,outFilePath);

        ExcelReader reader = ExcelUtil.getReader("C:\\Users\\Administrator\\Desktop\\预热塞_车型.xlsx");
        HashMap<String, String> map = new HashMap<>();
        map.put("型号","type");
        map.put("品牌","brand");
        map.put("车型","carFullName");
        reader.setHeaderAlias(map);
        List<CarPo> carPos = reader.readAll(CarPo.class);
        Set<String> collect = carPos.stream().map(item -> item.type).collect(Collectors.toSet());
        ExcelWriter writer = ExcelUtil.getWriter(new File("C:\\Users\\Administrator\\Desktop\\预热塞_产品.xlsx"));
        writer.write(collect);
        writer.flush();
        writer.close();
        reader.close();
    }

    @Data
    public static class CarPo {
        private String type;
        private String brand;
        private String carFullName;
    }

    /**
//     * 给整个PDF文件分页，形成多个pdf单页文件
//     *
//     * @param inputStream  pdf文件流
//     * @param outputParent 输出文件的父目录
//     * @throws IOException
//     */
//    public static Integer pageSpilt(File file, File outputParent) throws IOException {
//        if (!outputParent.exists() || !outputParent.isDirectory()) {
//            throw new RuntimeException("输出文件的父目录不存在");
//        }
//
//        PDDocument pdf = PDDocument.load(file);
//        try {
//            int numberOfPages = pageCount(pdf);
//            for (int i = 0; i < numberOfPages; i++) {
//                PDDocument document = new PDDocument();
//
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i++));
//                if (i < numberOfPages)document.addPage(pdf.getPage(i));
//                document.save(new File(outputParent, i + 1 + ".pdf"));
//                close(document);
//            }
//            return numberOfPages;
//        } finally {
//            close(pdf);
////            close(inputStream);
//        }
//    }
//
//    /**
//     * 从文件中加载pdf
//     *
//     * @param file 文件
//     * @return
//     * @throws IOException
//     */
//    public static PDDocument load(File file) throws IOException {
//        if (!file.exists() || file.isDirectory()) {
//            return null;
//        }
//        return PDDocument.load(file);
//    }
//
//    /**
//     * 从文件流中加载pdf
//     *
//     * @param inputStream 文件输入流
//     * @return
//     * @throws IOException
//     */
//    public static PDDocument load(InputStream inputStream) throws IOException {
//        if (inputStream == null || inputStream.available() == 0) {
//            return null;
//        }
//        return PDDocument.load(inputStream);
//    }
//
//    /**
//     * 获取pdf总页数
//     *
//     * @param pdf
//     * @return
//     */
//    public static int pageCount(PDDocument pdf) {
//        return pdf.getNumberOfPages();
//    }
//
//    public static void close(InputStream inputStream) {
//        try {
//            inputStream.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//    public static void close(PDDocument pdf) {
//        try {
//            pdf.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }

}
